colorchooserdialog: Fix disposing
authorMatthias Clasen <mclasen@redhat.com>
Sat, 9 May 2020 18:14:55 +0000 (14:14 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 11 May 2020 16:19:39 +0000 (12:19 -0400)
We need to drop our widgetry in dispose to prevent
leakage.

gtk/gtkcolorchooserdialog.c

index 4e3659c0e41bc44388f2b1c32d53c4ebc531e717..7e748400b7d2cd835da7db2d0cb1d3f40936084f 100644 (file)
@@ -191,12 +191,23 @@ gtk_color_chooser_dialog_set_property (GObject      *object,
     }
 }
 
+static void
+gtk_color_chooser_dialog_dispose (GObject *object)
+{
+  GtkColorChooserDialog *cc = GTK_COLOR_CHOOSER_DIALOG (object);
+
+  g_clear_pointer (&cc->chooser, gtk_widget_unparent);
+
+  G_OBJECT_CLASS (gtk_color_chooser_dialog_parent_class)->dispose (object);
+}
+
 static void
 gtk_color_chooser_dialog_class_init (GtkColorChooserDialogClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
 
+  object_class->dispose = gtk_color_chooser_dialog_dispose;
   object_class->get_property = gtk_color_chooser_dialog_get_property;
   object_class->set_property = gtk_color_chooser_dialog_set_property;